package com.zbkj.crmeb.chant.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.common.CommonPage;
import com.common.PageParamRequest;
import com.zbkj.crmeb.chant.model.ChannelPartitionCoupon;
import com.zbkj.crmeb.chant.request.ChannelPartitionCouponRequest;
import com.zbkj.crmeb.chant.response.ChannelPartitionCouponResponse;
import com.zbkj.crmeb.chant.response.ChannelPartitionInfoResponse;
import com.zbkj.crmeb.chant.response.ChannelPartitionUserResponse;

public interface ChannelPartitionCouponService extends IService<ChannelPartitionCoupon> {

    /**
     * 功能描述: 保存瓜分券信息
     * @Param: [request, merId]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/6/7 14:51
     */
    Boolean saveOrUpdateInfo(ChannelPartitionCouponRequest request, Integer merId);

    /**
     * 功能描述: 提前结束
     * @Param: [id]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/6/8 11:22
     */
    Boolean earlyTerminationActivity(Integer id);

    /**
     * 功能描述: 删除瓜分券
     * @Param: [id]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/6/8 14:23
     */
    Boolean delPartition(Integer id);
    
    /**
     * 功能描述: 获取瓜分券列表
     * @Param: [request, pageParamRequest, merId]
     * @Return: com.common.CommonPage<com.zbkj.crmeb.chant.response.ChannelPartitionCouponResponse>
     * @Author: wangzh
     * @Date: 2023/6/8 14:41
     */
    CommonPage<ChannelPartitionCouponResponse> getList(ChannelPartitionCouponRequest request, PageParamRequest pageParamRequest, Integer merId);

    /**
     * 功能描述: 瓜分券详情
     * @Param: [id, merId]
     * @Return: com.zbkj.crmeb.chant.response.ChannelPartitionCouponResponse
     * @Author: wangzh
     * @Date: 2023/6/9 9:34
     */
    ChannelPartitionCouponResponse getInfo(Integer id, Integer merId);

    /**
     * 功能描述: 领取瓜分券
     * @Param: [partitionId]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/6/9 16:25
     */
    Boolean receivePartitionCoupon(Integer partitionId);

    /**
     * 功能描述: 瓜分券页面
     * @Param: [id]
     * @Return: com.zbkj.crmeb.chant.response.ChannelPartitionInfoResponse
     * @Author: wangzh
     * @Date: 2023/6/12 14:30
     */
    ChannelPartitionInfoResponse getPartitionInfo(Integer id, Integer partitionId);

    /**
     * 功能描述: 开红包
     * @Param: [partitionId]
     * @Return: com.zbkj.crmeb.chant.response.ChannelPartitionUserResponse
     * @Author: wangzh
     * @Date: 2023/6/13 10:37
     */
    ChannelPartitionUserResponse partitionOpen(Integer partitionId, Integer merId);

    /**
     * 功能描述: 删除未拼成功的瓜分券信息
     * @Param: []
     * @Return: void
     * @Author: wangzh
     * @Date: 2023/6/21 10:41
     */
    void cancelBySystem();

}
